package com.erp.freight.domain.bo;

import com.ruoyi.common.core.web.oldDomain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 运费试算模版（燕文物流公司运费格读取）业务对象 erp_product_freight_yanwen
 *
 * @author erp
 * @date 2023-07-08
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ErpProductFreightYanwenBo extends BaseEntity {

    /**
     *
     */
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 运费模版类型
     */
    @NotBlank(message = "运费模版类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String freightType;

    /**
     * 国家
     */
    @NotBlank(message = "国家不能为空", groups = { AddGroup.class, EditGroup.class })
    private String country;

    /**
     * 分区
     */
    @NotBlank(message = "分区不能为空", groups = { AddGroup.class, EditGroup.class })
    private String zone;

    /**
     * 国家-英文
     */
    @NotBlank(message = "国家-英文不能为空", groups = { AddGroup.class, EditGroup.class })
    private String countryEn;

    /**
     * 国家-CODE
     */
    @NotBlank(message = "国家-CODE不能为空", groups = { AddGroup.class, EditGroup.class })
    private String countryCode;

    /**
     * 重量
     */
    @NotBlank(message = "重量不能为空", groups = { AddGroup.class, EditGroup.class })
    private String weight;

    /**
     * 运费
     */
    @NotNull(message = "运费不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal freight;

    /**
     * 服务费
     */
    @NotNull(message = "服务费不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal registrationFee;

    /**
     * 首重，单位g
     */
    @NotBlank(message = "首重，单位g不能为空", groups = { AddGroup.class, EditGroup.class })
    private String firstWeight;

    /**
     * 首重运费
     */
    @NotNull(message = "首重运费不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal firstFreight;

    /**
     * 续重，单位g
     */
    @NotBlank(message = "续重，单位g不能为空", groups = { AddGroup.class, EditGroup.class })
    private String continuationWeight;

    /**
     * 续重运费
     */
    @NotNull(message = "续重运费不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal continuationFreight;

    /**
     * 限重，单位g
     */
    @NotBlank(message = "限重，单位g不能为空", groups = { AddGroup.class, EditGroup.class })
    private String limitWeight;

    /**
     * 0:普货，1特货，2大包
     */
    @NotNull(message = "0:普货，1特货，2大包不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer packageType;

    /**
     * 乐观锁
     */
    @NotBlank(message = "乐观锁不能为空", groups = { AddGroup.class, EditGroup.class })
    private String revision;


}
